home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
12511500
/
var1432.dms
/
var1432.adf
/
NDUK-V40.lha
/
V40
/
include
/
graphics
/
displayinfo.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-15
|
6KB
|
188 lines
#ifndef GRAPHICS_DISPLAYINFO_H
#define GRAPHICS_DISPLAYINFO_H
/*
** $VER: displayinfo.h 39.13 (31.5.93)
** Includes Release 40.15
**
** include define file for displayinfo database
**
** (C) Copyright 1985-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif /* EXEC_TYPES_H */
#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h>
#endif /* GRAPHICS_GFX_H */
#ifndef GRAPHICS_MONITOR_H
#include <graphics/monitor.h>
#endif /* GRAPHICS_MONITOR_H */
#ifndef GRAPHICS_MODEID_H
#include <graphics/modeid.h>
#endif /* GRAPHICS_MODEID_H */
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif /* UTILITY_TAGITEM_H */
/* the "public" handle to a DisplayInfoRecord */
typedef APTR DisplayInfoHandle;
/* datachunk type identifiers */
#define DTAG_DISP 0x80000000
#define DTAG_DIMS 0x80001000
#define DTAG_MNTR 0x80002000
#define DTAG_NAME 0x80003000
#define DTAG_VEC 0x80004000 /* internal use only */
struct QueryHeader
{
ULONG StructID; /* datachunk type identifier */
ULONG DisplayID; /* copy of display record key */
ULONG SkipID; /* TAG_SKIP -- see tagitems.h */
ULONG Length; /* length of local data in double-longwords */
};
struct DisplayInfo
{
struct QueryHeader Header;
UWORD NotAvailable; /* if NULL available, else see defines */
ULONG PropertyFlags; /* Properties of this mode see defines */
Point Resolution; /* ticks-per-pixel X/Y */
UWORD PixelSpeed; /* aproximation in nanoseconds */
UWORD NumStdSprites; /* number of standard amiga sprites */
UWORD PaletteRange; /* OBSOLETE - use Red/Green/Blue bits instead */
Point SpriteResolution; /* std sprite ticks-per-pixel X/Y */
UBYTE pad[4]; /* used internally */
UBYTE RedBits; /* number of Red bits this display supports (V39) */
UBYTE GreenBits; /* number of Green bits this display supports (V39) */
UBYTE BlueBits; /* number of Blue bits this display supports (V39) */
UBYTE pad2[5]; /* find some use for this. */
ULONG reserved[2]; /* terminator */
};
/* availability */
#define DI_AVAIL_NOCHIPS 0x0001
#define DI_AVAIL_NOMONITOR 0x0002
#define DI_AVAIL_NOTWITHGENLOCK 0x0004
/* mode properties */
#define DIPF_IS_LACE 0x00000001
#define DIPF_IS_DUALPF 0x00000002
#define DIPF_IS_PF2PRI 0x00000004
#define DIPF_IS_HAM 0x00000008
#define DIPF_IS_ECS 0x00000010 /* note: ECS modes (SHIRES, VGA, and **
** PRODUCTIVITY) do not support **
** attached sprites. **
*/
#define DIPF_IS_AA 0x00010000 /* AA modes - may only be available
** if machine has correct memory
** type to support required
** bandwidth - check availability.
** (V39)
*/
#define DIPF_IS_PAL 0x00000020
#define DIPF_IS_SPRITES 0x00000040
#define DIPF_IS_GENLOCK 0x00000080
#define DIPF_IS_WB 0x00000100
#define DIPF_IS_DRAGGABLE 0x00000200
#define DIPF_IS_PANELLED 0x00000400
#define DIPF_IS_BEAMSYNC 0x00000800
#define DIPF_IS_EXTRAHALFBRITE 0x00001000
/* The following DIPF_IS_... flags are new for V39 */
#define DIPF_IS_SPRITES_ATT 0x00002000 /* supports attached sprites */
#define DIPF_IS_SPRITES_CHNG_RES 0x00004000 /* supports variable sprite resolution */
#define DIPF_IS_SPRITES_BORDER 0x00008000 /* sprite can be displayed in the border */
#define DIPF_IS_SCANDBL 0x00020000 /* scan doubled */
#define DIPF_IS_SPRITES_CHNG_BASE 0x00040000
/* can change the sprite base colour */
#define DIPF_IS_SPRITES_CHNG_PRI 0x00080000
/* can change the sprite priority
** with respect to the playfield(s).
*/
#define DIPF_IS_DBUFFER 0x00100000 /* can support double buffering */
#define DIPF_IS_PROGBEAM 0x00200000 /* is a programmed beam-sync mode */
#define DIPF_IS_FOREIGN 0x80000000 /* this mode is not native to the Amiga */
struct DimensionInfo
{
struct QueryHeader Header;
UWORD MaxDepth; /* log2( max number of colors ) */
UWORD MinRasterWidth; /* minimum width in pixels */
UWORD MinRasterHeight; /* minimum height in pixels */
UWORD MaxRasterWidth; /* maximum width in pixels */
UWORD MaxRasterHeight; /* maximum height in pixels */
struct Rectangle Nominal; /* "standard" dimensions */
struct Rectangle MaxOScan; /* fixed, hardware dependent */
struct Rectangle VideoOScan; /* fixed, hardware dependent */
struct Rectangle TxtOScan; /* editable via preferences */
struct Rectangle StdOScan; /* editable via preferences */
UBYTE pad[14];
ULONG reserved[2]; /* terminator */
};
struct MonitorInfo
{
struct QueryHeader Header;
struct MonitorSpec *Mspc; /* pointer to monitor specification */
Point ViewPosition; /* editable via preferences */
Point ViewResolution; /* standard monitor ticks-per-pixel */
struct Rectangle ViewPositionRange; /* fixed, hardware dependent */
UWORD TotalRows; /* display height in scanlines */
UWORD TotalColorClocks; /* scanline width in 280 ns units */
UWORD MinRow; /* absolute minimum active scanline */
WORD Compatibility; /* how this coexists with others */
UBYTE pad[32];
Point MouseTicks;
Point DefaultViewPosition; /* original, never changes */
ULONG PreferredModeID; /* for Preferences */
ULONG reserved[2]; /* terminator */
};
/* monitor compatibility */
#define MCOMPAT_MIXED 0 /* can share display with other MCOMPAT_MIXED */
#define MCOMPAT_SELF 1 /* can share only within same monitor */
#define MCOMPAT_NOBODY -1 /* only one viewport at a time */
#define DISPLAYNAMELEN 32
struct NameInfo
{
struct QueryHeader Header;
UBYTE Name[DISPLAYNAMELEN];
ULONG reserved[2]; /* terminator */
};
/******************************************************************************/
/* The following VecInfo structure is PRIVATE, for our use only
* Touch these, and burn! (V39)
*/
struct VecInfo
{
struct QueryHeader Header;
APTR Vec;
APTR Data;
UWORD Type;
UWORD pad[3];
ULONG reserved[2];
};
#endif /* GRAPHICS_DISPLAYINFO_H */